Identificação de Usuário em Eventos via MQTT
Como cruzar informações para identificar o usuário em mensagens MQTT
Em muitos cenários operacionais, identificar o usuário responsável por um evento é fundamental para análises, ações contextuais e auditoria. Abaixo, listamos três abordagens possíveis para realizar essa identificação com base em práticas técnicas seguras e compatíveis com as diretrizes de privacidade.
1 - Identificação via Advertisement-Key com Timestamp (método recomendado)
Como funciona:
- No momento do cadastro ou login do usuário no aplicativo, capture o
advertisement-key
e associe-o ao perfil do usuário em seu banco de dados. - Ao receber um
EVENT_IN
no tópico MQTT, utilize oadvertisement-key
como chave de busca para mapear o usuário correspondente.
Considerações importantes:
O advertisement-key
pode ser alterado pelo sistema operacional em algumas situações. Para garantir a consistência da identificação, recomenda-se:
- Atualizar o
adv-key
sempre que o usuário abrir o aplicativo; - Implementar o callback do Google que notifica quando o
adv-key
é modificado; - Tratar o
adv-key
como um identificador mutável, realizando verificações regulares de atualização.
Casos comuns de alteração do advertisement-key:
- O usuário redefine manualmente o ID nas configurações do dispositivo;
- O app é reinstalado em modo anônimo, resultando em um novo
adv-key
; - Aplicativos com funcionalidades de proteção à privacidade podem impedir a persistência do
advertisement-key
.
2 - Utilização do campo notification_name (método alternativo com restrições)
Como funciona:
É possível enviar um identificador adicional no campo notification_name
que acompanha o EVENT_IN
via MQTT. Esse campo pode ser utilizado, por exemplo, para enviar um session-id
criptografado.
Limitações e riscos:
- Privacidade: Essa abordagem pode trazer riscos relacionados à LGPD, pois permite a associação indireta de dados sensíveis.
- Segurança: Se mal implementada, pode expor dados identificáveis em trânsito.
Importante: campo
notification_name
não é enviado por padrão. Caso deseje utilizá-lo, solicite sua ativação ao suporte técnico.
3 - Identificação via notification-token (método para utilizar com firebase)
Como funciona:
- Utiliza-se o
notificationToken
gerado pelo Firebase Cloud Messaging (FCM) como identificador de eventos oriundos de um usuário/dispositivo. - Capture o
notificationToken
e associe-o ao perfil do usuário em seu banco de dados. - Ao receber o
notificationToken
no evento MQTT, o cliente pode consultar seu banco de dados do FCM para mapear o token ao usuário correspondente e validar sua autenticidade.
Considerações importantes:
- O
notificationToken
é um identificador dinâmico e seguro vinculado ao dispositivo e à instância da aplicação. - A abordagem é robusta, porém é necessário que haja uma integração técnica com o Firebase para validação dos tokens e atualização periódica em caso de revogação ou atualização de dispositivos por parte do cliente.
Acessa a documentação dos métodos para cada sistema operacional:
- Android: Android - Identificação de usuário.
- iOS: iOS - Identificação de usuário.
- Flutter: Flutter - Identificação de usuário.
- React: React - Identificação de usuário.